The present application relates generally to computer system performance analysis. More specifically, the present application is directed to generation and application of stressmarks in a computer system.
In computer system design, understanding of energy behavior and microarchitecture characteristics early in a design process can enable designers to make packaging and power delivery decisions. Further optimizations to a design can be made to effectively manage heat and potential noise issues associated with different stressmarks. A stressmark refers to a condition or set of conditions that puts a desired type of stress on a system, such as a low power condition, a high power condition, a high inductive noise condition, and the like. For example, a particular instruction or sequence of instructions can result in a maximum condition for a metric of interest, a minimum for a metric of interest, or a maximum rate of change of a metric of interest. Analysis can be performed at a core or module level, at a processor level, at a system level, etc.
When system performance analysis is attempted manually, the process is typically tedious, time-consuming, and error-prone. Due to the vast number of possibilities within a system, manual analysis is unable to fully explore a solution-space. For instance, in a complex instruction set computer (CISC), a large number of complex instructions may exist that each have a number of variations. Systems that apply a generic or brute-force approach to system analysis are typically constrained by execution time due to the large number of possible configurations and permutations. Expert-defined design spaces can reduce system analysis computational burden but typically require substantial manual intervention as well as substantial effort by experts to study the system in great detail. At a system level, complexity further increases as multiple workloads loads can be run using different resources within the system at the same time.